# (8) code = "sum([2 * 3 + 6, (5 - 9) + 7 - 2, 13 * 4 - 11])"

#  执行code代码
# print(sum([2 * 3 + 6, (5 - 9) + 7 - 2, 13 * 4 - 11]))

# code = "sum([2 * 3 + 6, (5 - 9) + 7 - 2, 13 * 4 - 11])"
# print(eval(code))

# (9) 计算列表[11,22,33,44,55]的每一个元素的平方的和

# l = [11, 22, 33, 44, 55]
# print(sum(list(map(lambda item: item ** 2, l))))


# (10) 给定一个字符串列表 ['apple', 'banana', 'cherry', 'date']
# l = ['apple', 'banana', 'cherry', 'date']

# <1> 使用 filter() 过滤出所有长度小于等于5的字符串
# print(list(filter(lambda item: len(item) <= 5, l)))
# <2> 使用 `sorted()` 对列表进行按照长度进行降序排序
# print(sorted(l, key=lambda item: len(item)))

# (11) 给定一个字典列表 `[{ 'name': 'Alice', 'age': 25 }, { 'name': 'Bob', 'age': 30 }, { 'name': 'Charlie', 'age': 20 }]`

# data = [
#     {'name': 'Alice', 'age': 25},
#     {'name': 'Bob', 'age': 30},
#     {'name': 'Charlie', 'age': 20},
#     {'name': 'Alex', 'age': 45}
# ]

# <1> 使用 `filter()` 过滤出所有年龄大于等于25的人。

# print(list(filter(lambda item: item["age"] >= 25, data)))
# <2> 使用 `filter()` 过滤出所有名字以`a`或`A`开头的
# print(list(filter(lambda item: item["name"].startswith("a") or item["name"].startswith("A"), data)))
# print(list(filter(lambda item: item["name"].lower().startswith("a"), data)))
# <3> 使用 `map()` 提取每个字典中的名字字段的长度，并返回新的列表。

# print(list(map(lambda item: item, data)))
# print(list(map(lambda item: item["name"], data)))
# print(list(map(lambda item: len(item["name"]), data)))


# (12)
# def a():
#     print("aaa")
#
#
# def b():
#     print("bbb")
#
#
# def c():
#     print("ccc")
#
#
# def d():
#     print("ddd")
#
#
# def e():
#     print("eee")
#
#
# func_list = [a, b, c, d, e]
# <1> 调用列表中第三个函数
# func_list[2]()

# func_dict = {
#     "apple": a,
#     "banana": b,
#     "cherry": c,
#     "d": d,
#     "e": e,
# }
# 调用字典中的d函数

# func_dict["cherry"]()
